package com.task.platform.service;

import com.task.platform.bo.sys.po.User;
import org.springframework.security.core.userdetails.UserDetails;

import java.util.List;

public interface UserService {
    User findByUsername(String username);


    UserDetails loadUserByUsername(String username);

    /**
     * 注册用户，账户密码注册
     *
     * @param user
     * @return
     */
    String register(User user);

    /**
     * 、
     * 通过邮箱查找用户
     *
     * @param username
     * @return
     */
    User findUserByEmail(String username);

    /**
     * 保存用户信息
     *
     * @param user
     * @return
     */
    boolean save(User user);

    /**
     * 通过用户名和密码获取jwt
     *
     * @param user
     * @return
     */
    String getJwt(User user);

    /**
     * 通过用户名和验证码获取jwt
     *
     * @param user
     * @param verificationCode
     * @return
     */
    String getJwt(User user, String verificationCode);

    /**
     * 被动批量注册用户
     *
     * @param users
     */
    void batchRegister(List<User> users);


}
